package nespresso.servlets;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import nespresso.beans.Base;
import nespresso.beans.Ligne;
import nespresso.beans.Commande;

public class LigneServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	public LigneServlet() {

	}

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		/*
		 * si l'utilisateur tape l'adresse de la servlet directement dans la barre d'adresse, il est renvoyé
		 * sur la page d'accueil !
		 */
		response.sendRedirect("nespresso.jsp");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// on ouvre une session pour y mettre nos objets et pour protéger les pages
		HttpSession session  = request.getSession();
		request.setCharacterEncoding("UTF-8");
		Ligne l = (Ligne)session.getAttribute("lignesel"); // Quelle ligne a été sélectionnée ?
		Commande c = (Commande)session.getAttribute("commande");
		
		// on récupère la valeur du bouton de validation
		String bvalide = request.getParameter("BValideLigne");
		if(bvalide.equals("Mise à jour")) {
			String[] zecap = request.getParameterValues("capsules");
			String nbcap = request.getParameter("nbcapsules");
			l.SetIdcapsule(zecap[0]); // On modifie l'objet "ligne" pour lui indiquer la nouvelle capsule
			l.SetNbcapsule(Integer.parseInt(nbcap));
			request.setAttribute("LigneMessage", l.UpdateLigne());
			c.UpdateCommande();
			RequestDispatcher reqDispatcher = getServletConfig().getServletContext().getRequestDispatcher("/lignescommande.jsp");
			reqDispatcher.forward(request,response);
    	}
		else {
			if(bvalide.equals("Supprimer")) {
				String nuligne = l.GetId();
				request.setAttribute("NumLigne", nuligne);
				l.DeleteLigne(c);
				c.UpdateCommande();
				request.setAttribute("LigneMessage", "Suppression effectuée avec succès !");
				RequestDispatcher reqDispatcher = getServletConfig().getServletContext().getRequestDispatcher("/lignescommande.jsp");
				reqDispatcher.forward(request,response);
			} else {
				RequestDispatcher reqDispatcher = getServletConfig().getServletContext().getRequestDispatcher("/lignenew.jsp");
				reqDispatcher.forward(request,response);
			}
		}   	
	}
}
